# 定义程序存储字 DB
# 中断函数关键字 interupt
# 程序存储器 code
# 位寻址区  bdata

unsigned char code x=100;

EQU（定义汇编符号）先定义后 使用，DATA（定义数据）先使用后定义

ORG 2000H;
DS 10;
DB 20,100;
DB 'W','Q';

将RAM(30H)-RAM(3FH)送入扩展RAM300H-30FH中

MOV RO 0FH;
MOV R1 30H;
MOV DPTR ,#0300H;
LOOP:
    MOV A ,@R1;
    MOV @DPTR,A;
    INC R1;
    DEC R0;
    INC DPTR
    DZNZ R0 ,LOOP


（1）程序设计题，所有寄存器，地址直接无法直接交换数据，必须通过累加器A中转！！！


MOV DPTR, #0300H;
MOV RO,#30H;
MOV R1,#10H;

LOOP:
  MOV A,@R0;
  MOV @DPTR,A;
  INC DPTR;
  INC R0;
  DJNZ R1,LOOP;

扩展RAM2010H的内容送扩展RAM2020H中

    ORG 0000H;
    MOV DPTR ,#2010H
    MOVX A, @DPTR
    MOV DPTR,#2020H
    MOVX @DPTR,A
    END;


扩展RAM2000H送片内RAM30H中

MOV DPTR,#2000H;
MOV A,@DPTR;
MOV RO,#30H;  片内ram用Ri
MOV @RO,A;

编写4位16进制数加法此程序：

    ORG OOOOH;
    LJMP START;
    ORG 0100H;

START:
   MOV A,20H;
   ADD A,30H;
   MOV 40H,A;结果存入40H
   ;重复
   MOV A,21H;
   ADDC A,31H;
   MOV 41H,A;结果存入41H
   MOV A,#00H; 最高位处理，把CY加上去
   ADDC A,#00H
   MOV 42H,A;将最高位处理结果放入42H
   SJMP $;原地他不，程序结束
   END;

将扩展RAM1000H存放0-99:

    ORG 0000H;
    MOV R0,#64H;
    MOV A,#00H;
    MOV DPTR ,#1000H
LOOP:
    MOVX @DPTR,A;
    INC A;
    INC DPTR;
    DJNZ RO,LOOP;除非R0=0；否则跳转到LOOP
    SJMP $;
    END;

寻址方式：立即寻址，寄存器寻址，直接寻址，寄存器间接寻址，基地址加变地址寻址

RET&RETI区别

RET子程序返回按调用时保存的地址返回即可
RETI作为中断返回指令，除了按中断返回 指令，还要清楚内部相应的中断状态寄存器。

